<?php
defined('BASEPATH') OR exit('No direct script access allowed');

/**
 * 小动作管理控制器-后台
 * 
 * @desc    小动作管理
 * @version 1.0.0 直接完善文档注释
 * @date	2017年7月11日 下午2:52:46
 * 
 * @title 小动作管理
 * @entry http://discovery.segway.com
 */
class Trick extends MY_Manager_Controller
{
	/** @var Lib_trick */
	public $lib_trick = null;
	
	public function __construct()
	{
		parent::__construct();
		
		$this->load->library('lib_trick');
		
		$this->set_mutable_view_var('head.title', 'Trick - Management');
		$this->set_mutable_view_var('head.keywords', '');
		$this->set_mutable_view_var('head.description', '');
		
		$this->lang->load('trick');
		
	}
	
	/**
	 * 首页 -> 列表页
	 *
	 * @return html
	 *
	 * @command pass noneurl
	 */
	public function index()
	{
		$this->listing();
	}
	
	/**
	 * 小动作列表 - 所有小动作列表页
	 * 
	 * @desc	所有小动作的列表页，包括收藏，关注，赞顶踩等各种类型
	 * @author	Jason
	 * @date	2017年7月11日 下午2:55:20
	 * @link	/manage/trick/listing
	 */
	public function listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list($conditions, $page, $number);
		$data['list'] = $list;
		
		$this->load->view('manager/trick/list', $data);
	}
	
	/**
	 * 小动作列表 之 收藏列表
	 *
	 * @desc	收藏列表
	 * @author	Jason
	 * @date	2017年7月11日 下午3:04:24
	 * @link	/manage/trick/listing_favourite
	 */
	public function listing_favourite($page = 1, $number = 20)
	{
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list_by_somekey($conditions, $page, $number, $type = 'favourite', $source_type = 'consumer');
		$data['list'] = $list;
		
		$this->load->view('manager/trick/list_favourite', $data);
	}
	// MARK ajax 列表页
	/**
	 * 小动作列表，ajax，JSON - 所有小动作列表页
	 *
	 * @desc	所有小动作的列表页，包括收藏，关注，赞顶踩等各种类型
	 * @author	Jason
	 * @date	2017年7月11日 下午2:55:20
	 * @link	/manage/trick/ajax_listing
	 */
	public function ajax_listing($page = 1, $number = 20)
	{
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list($conditions, $page, $number);
		$data['list'] = $list;
		
		Lib_json::renderSuccess($data);
	}
	
	/**
	 * 小动作列表 之 收藏列表，ajax，JSON
	 *
	 * @desc	收藏列表
	 * @author	Jason
	 * @date	2017年7月11日 下午3:04:24
	 * @link	/manage/trick/ajax_listing_favourite
	 */
	public function ajax_listing_favourite($page = 1, $number = 20)
	{
		$conditions = $this->lib_trick->get_conditions();
		$list = $this->lib_trick->get_tricks_list_by_somekey($conditions, $page, $number, $type = 'favourite', $source_type = 'consumer');
		$data['list'] = $list;
		
		Lib_json::renderSuccess($data);
	}
	
	/**
	 * 小动作详情 - 编辑前信息载入
	 * 
	 * @desc	编辑前信息载入
	 * @method	GET
	 * @author	Jason
	 * @date	2017年7月11日 下午3:11:02
	 *
	 * @param	number $id       ID，默认为 0，代表新增一条记录
	 * 			把参数按顺序辍到 URL 之后，用 "/" 间隔
	 * @example	如果参数为 id=1
	 * 			那么URL为 /manage/trick/detail/1
	 *
	 * @demoParam id 1
	 */
	public function detail($id = 0)
	{
		$trick = $this->lib_trick->get_trick_detail($id);
		if (empty($trick)) {
			$trick = [];
		}
		
		$data['content']['trick'] = $trick;
		
		$this->load->view('manager/trick/detail', $data);
	}
	
	
	/**
	 * 小动作详情编辑提交 - 编辑完后的信息提交 - 增加 & 修改
	 *
	 * @desc	编辑完后的信息提交 - 增加 & 修改
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午3:20:35
	 *
	 * @param	number $id		 ID，默认为 0，代表增加 & 非0代表修改
	 * ...
	 *
	 * @return	JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link	/manage/trick/ajax_create
	 *
	 * @command noneurl
	 */
	public function ajax_create()
	{
		if (empty($id = $this->input->post('id'))) {
			list($status, $content) = $this->lib_trick->create();
		} else {
			list($status, $content) = $this->lib_trick->update();
		}
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
	/**
	 * 删除小动作
	 * 
	 * @desc	取消小动作，可以是取消收藏，取消关注，取消赞顶踩，取消有意，取消拉黑，取消内推等！
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午3:15:48
	 * 
	 * @param	number $id	小动作ID
	 * 
	 * @return	JSON	标准JSON格式响应
	 * 
	 * @link	/manager/trick/ajax_delete
	 * 
	 * @command noneurl
	 */
	public function ajax_delete()
	{
		list($status, $content) = $this->lib_trick->delete();
		
		if(!$status) {
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content));
		} else {
			Lib_json::renderSuccess([]);
		}
	}
	
	/**
	 * 小动作添加和删除切换 - 编辑完后的信息提交 - 增加 & 删除
	 *
	 * @desc	小动作添加和删除切换 - 编辑完后的信息提交 - 增加 & 删除
	 * @method	POST
	 * @author	Jason
	 * @date	2017年7月11日 下午4:21:27
	 *
	 * @param	string $type
	 * @param	string $source_type
	 * @param	string $target_type
	 * @param	number $source_id
	 * @param	number $target_id
	 * @param	string $content
	 *
	 * @return	JSON	标准JSON格式响应
	 * 					结构：无
	 *
	 * @link	/manage/trick/ajax_toggle
	 *
	 * @command noneurl
	 */
	public function ajax_toggle()
	{
		list($status, $content) = $this->lib_trick->toggle_create_delete();
		
		if(!$status) {
			$messageContent = Lib_json::getMessageContent($content);
			Lib_json::renderError(Lib_json::ERROR_BUSINESS, current($content), $messageContent);
		} else {
			Lib_json::renderSuccess(['data' => $content], 'success');
		}
	}
	
}
